package br.com.hs.nfe.common.enumeration;

/**
 * Enumeração da modalidade de determinação da BC do ICMS ST.
 * @author Ranlive Hrysyk
 */
public enum ModBCSTEnum {

    /**
     * 0 - Preço tabelado ou máximo sugerido.
     */
    PRECO_TABELADO_MAX_SUGERIDO("0", "Preço Tabelado ou Máximo Sugerido"),
    /**
     * 1 - Lista negativa.
     */
    LISTA_NEGATIVA("1", "Lista Negativa (valor)"),
    /**
     * 2 - Lista positiva.
     */
    LISTA_POSITIVA("2", "Lista Positiva (valor)"),
    /**
     * 3 - Lista neutra.
     */
    LISTA_NEUTRA("3", "Lista Neutra (valor)"),
    /**
     * 4 - Margem valor agregado.
     */
    MARGEM_VALOR_AGREGADO("4", "Margem Valor Agregado (%)"),
    /**
     * 5 - Pauta.
     */
    PAUTA("5", "Pauta (valor)");
    private String codigo;
    private String descricao;

    private ModBCSTEnum(String codigo, String descricao) {
        this.codigo = codigo;
        this.descricao = descricao;
    }

    /**
     * Código.
     */
    public String getCodigo() {
        return this.codigo;
    }

    /**
     * Descrição.
     */
    public String getDescricao() {
        return this.descricao;
    }

    @Override
    public String toString() {
        return getDescricao();
    }

    /**
     * Obtém enum pelo código.
     */
    public static ModBCSTEnum getEnumByCodigo(String string) {
        for (ModBCSTEnum e : values()) {
            if (e.getCodigo().equals(string)) {
                return e;
            }
        }
        return null;
    }
}
